package _07_Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @author HLF
 * @version V1.0
 * @package _06_Autowired
 * @date 2021/10/14 15:03
 */
@Component("myStudent")
public class Student {
    @Value("大牙")
    private String name;
    @Value("12")
    private Integer age;

    /**
     * @Resource ：来自JDK中的注解，spring框架中提供了对这个注解的功能的支持，可以使用它给引用类型赋值
     * 使用的也是自动注入的原理，支持byName，byType，默认是byName
     * 默认是byName，如果byName找不到，则使用byType
     * <p>
     * 如果只使用byName不使用byType，只需要增加一个属性name
     * name的值是bean的id值
     * <p>
     * * 位置：1.属性定义的上面（推荐使用）
     * 2.set方法的上面
     */

    //默认是byName，如果byName找不到，则使用byType
    //@Resource

    //只使用byName
    @Resource(name = "mySchool")
    private School school;

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school=" + school +
                '}';
    }
}
